//注册登录接口
const router = require('koa-router')() //实例化路由
//输出body
const result = require('../../config/result.js')
// 操作数据库接口
const {
	getToken,
	addUrl,
	tripUrl
} = require('../../config/databaseapi.js')
// 校验输入用户名密码
const {	regcheck } = require('../../config/checking.js')
// token加密
const { gentoken } = require('../../token/jwt.js')
// 验证token合法性
const {Auth}=require('../../token/auth.js')

//注册路径
router.post('/register', async ctx => {
	console.log('890')
	//new getToken().gettoken()
	//添加数据
	// let name='lvlv'
	// let query=`db.collection("ceshi").add({data:{name:'${name}'}})`
	//	new getToken().posteve(addUrl,query)
	// 返回数据类化
	// new result(ctx).answer()
	// post提交的值在：ctx.request.body
	let {
		account,
		password
	} = ctx.request.body
	// 1:校验前端传来的值是否合法
	new regcheck(ctx, account, password).start()
   //2：手机号码之前是否已经注册过
   
   const query = `db.collection('business-acc').where({account:'${account}'}).get()`

   try{
   	const user = await new getToken().posteve(tripUrl,query)
	
	if(user.data.length>0){
		// 已经注册过
		new result(ctx,'已经注册过',202).answer()
	}else{
		//没注册过
		// 生成商家唯一标识
		const uid = new Date().getTime()
		const strid =  JSON.stringify(uid)
		const OBJ = {account,password,uid:strid} 
		const STR = JSON.stringify(OBJ)
		
		const addQuery=`db.collection('business-acc').add({data:${STR}})`
		const res = await new getToken().posteve(addUrl,addQuery)
		//console.log(res)
		new result(ctx,'注册通过！',202).answer()
	}
   }catch(e){
   	//TODO handle the exception
	
	new result(ctx,'注册失败！服务器发生错误',500).answer()
   }


})
//登录接口
router.post('/login',async ctx=>{
	let { account,password} = ctx.request.body
	const query=`db.collection('business-acc').where({account:'${account}'}).get()`
	// console.log(gentoken('1234567'))
	try{
		const user =await new getToken().posteve(tripUrl,query)
		// console.log(user)
		if (user.data.length == 0) {
			new result(ctx,'账号或密码错误',202).answer()			
		} else{
			const OBJ = JSON.parse(user.data[0])
			// console.log(OBJ) 登录成功，存储token
			new result(ctx,'登录成功',200,{token:gentoken(OBJ.uid)}).answer()	
		}
	}catch(e){
		//TODO handle the exception
		// console.log(e)
		new result(ctx,'登录失败！服务器发生错误',500).answer()
	}
})
// 验证token
router.get('/ceshi',new Auth().m, ctx=>{
	console.log('123')
	console.log(ctx.auth.uid)
})
// 暴露接口
module.exports = router.routes()
